<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //升级了对象的写法
        /* 
            
            创建对象的时候，如果 变量名和属性名 一样

            可以省略了属性名和冒号，在{}内放一个变量，这个变量名会自动作为属性名，变量的值会自动作为这个属性的属性值
        */

        let title = '张三';
        let maxId = 1;
        let id = 11;

        function box() { }

        //  title: title
        //  属性名：变量 --变量的值 成为了 title的属性值
        // let obj = { title: title, id: maxId };
        // let obj2 = { title: 'aaa', id: maxId, num: 1 };
        // let obj2 = { 'title': 'aaa', id: maxId, num: 1 };
        // let obj = { title, id };
        // let obj = { title, id: maxId, box: box };
        var aaa = 1;
        let obj = {
            // 简写*********
            title,
            id: maxId, box,
            fn: function () { },

            // 省略了 ：function 
            // 简写*********
            test() { },
            a: 1,
            aaa: aaa,

            // 下面的写法 给属性名加了一个中括号，aaa就会被当做 变量了 ，变量的值就成了 属性名
            [aaa]: '222'
        };
        console.log(obj);

        // 字面量创建对象---属性名 一般不会被当做变量---属性值 可能会被当做变量


    </script>

</body>

</html>